package com.atguigu.gulimall.search.vo;

import com.atguigu.common.to.es.SkuEsModel;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * @author Yanglinfengkk
 * 需要返回给页面的所有信息
 */
@Data
public class SearchResult {
    /**
     * 查询到的所有商品信息
     */
    private List<SkuEsModel> products;

    /**
     *        分页信息
     * 当前页码     pageNum
     * 总记录数     total
     * 总页码       totalPages
     * 导航页码     pageNavs
     */
    private Integer pageNum;
    private Long total;
    private Integer totalPages;
    private List<Integer> pageNavs;

    /**
     *当前查询到的结果,所有涉及的品牌
     */
    private List<BrandVo> brands;
    /**
     * 当前查询到的结果,所有涉及的属性信息
     */
    private List<AttrVo> attrs;
    /**
     * 当前查询到的结果,所有涉及的分类信息
     */
    private List<CatalogVo> catalogs;

    /**
     * 面包屑导航
     */
    private List<NavVo> navs=new ArrayList<>();
    private List<Long> attrIds=new ArrayList<>();

    /*========================以上是返回给页面的所有信息=================================*/
    @Data
    public static class BrandVo{
        /**
         * 品牌ID
         */
        private Long brandId;
        /**
         * 品牌名
         */
        private String brandName;
        /**
         * 品牌图片
         */
        private String brandImg;
    }
    @Data
    public static class AttrVo{
        /**
         * 属性ID
         */
        private Long attrId;
        /**
         * 属性名
         */
        private String attrName;
        /**
         * 属性值
         */
        private List<String> attrValue;
    }
    @Data
    public static class CatalogVo{
        /**
         * 分类ID
         */
        private Long catalogId;
        /**
         * 分类名
         */
        private String catalogName;
    }
    @Data
    public static class NavVo{
        /**
         * 面包屑导航名
         */
        private String navName;
        /**
         * 面包屑导航值
         */
        private String navValue;
        /**
         * 面包屑导航地址
         */
        private String link;
    }
}
